package Modelo;

import Dao.GenerateID;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author kassio / pablo
 */

public final class Hotel implements Serializable, GenerateID {

    private static final long serialVersionUID = 1L;
    private int id;
    private String nome;
    private String gerente;
    private String endereco;
    private String complemento;
    private String bairro;
    private String cidade;
    private String uf;
    private String cep;
    private String telefone;
    private String email;
    private List<Quarto> quartos = new ArrayList<Quarto>();

    public Hotel(String gerente, String endereco, int numeroDeQuartos) {
        setGerente(gerente);
        setEndereco(endereco);
    }

    public Hotel() {
    }

    public void setGerente(String g) {
        gerente = g;
    }

    public String getGerente() {
        return gerente;
    }

    public void setEndereco(String e) {
        endereco = e;
    }

    public String getEndereco() {
        return endereco;
    }

    public int getQuantidadeQuartos() {
        return quartos.size();
    }

    public boolean addQuarto(Quarto q) {
        return quartos.add(q);
    }

    public boolean removeQuarto(Quarto q) {
        return quartos.remove(q);
    }

    public Quarto getQuarto(int numero) {
        if (numero <= quartos.size()) {
            for (Quarto q : quartos) {
                if (q.getNumero() == numero) {
                    return q;
                }
            }
        }
        return null;
    }

    public List<Quarto> getQuartos() {
        return quartos;
    }

    public String getBairro() {
        return bairro;
    }

    public void setBairro(String bairro) {
        this.bairro = bairro;
    }

    public String getCep() {
        return cep;
    }

    public void setCep(String cep) {
        this.cep = cep;
    }

    public String getCidade() {
        return cidade;
    }

    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    public String getComplemento() {
        return complemento;
    }

    public void setComplemento(String complemento) {
        this.complemento = complemento;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public String getTelefone() {
        return telefone;
    }

    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    public String getUf() {
        return uf;
    }

    public void setUf(String uf) {
        this.uf = uf;
    }

    @Override
    public void setId(int id) {
        this.id = id;
    }

    @Override
    public int getId() {
        return id;
    }

    public void getData(Hotel h) {
        nome = h.getNome();
        gerente = h.getGerente();
        endereco = h.getEndereco();
        complemento = h.getComplemento();
        bairro = h.getBairro();
        cidade = h.getCidade();
        uf = h.getUf();
        cep = h.getCep();
        telefone = h.getTelefone();
        email = h.getEmail();
        quartos = h.getQuartos();
    }

    @Override
    public boolean equals(Object obj) {
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        final Hotel other = (Hotel) obj;
        if (this.id != other.id) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return nome;
    }
}
